#include "MCIMX6Y2.h"
#include "fsl_iomuxc.h"

void clk_init(void)
{
    CCM->CCGR0 = 0xFFFFFFFF;
    CCM->CCGR1 = 0xFFFFFFFF;
    CCM->CCGR2 = 0xFFFFFFFF;
    CCM->CCGR3 = 0xFFFFFFFF;
    CCM->CCGR4 = 0xFFFFFFFF;
    CCM->CCGR5 = 0xFFFFFFFF;
    CCM->CCGR6 = 0xFFFFFFFF;
}

void led_init(void)
{
    //IOMUX_SW_MUX->GPIO1_IO03 = 0x5;     /*复用GPIO1_IO03为GPIO模式*/
    //IOMUX_SW_PAD->GPIO1_IO03 = 0x10B0;  /*设置GPIO1_IO03电气特性*/

	IOMUXC_SetPinMux(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0);	/*复用GPIO1_IO03为GPIO模式*/
	IOMUXC_SetPinConfig(IOMUXC_GPIO1_IO03_GPIO1_IO03, 0x10B0); /*设置GPIO1_IO03电气特性*/

    GPIO1->GDIR = 0x08;                 /*bit3设置为1,GPIO为输出OUTPUT*/
    GPIO1->DR = 0x0;                    /*GPIO输出第电平*/
}

void led_on(void)
{
    GPIO1->DR &= ~(1<<3);                    /*bit3清零*/
}

void led_off(void)
{
    GPIO1->DR |= (1<<3);                    /*bit3设置*/
}

void short_delay(unsigned int n)
{
    while(n--){
        ;
    }
}

/* sleep 1ms */
void delay(unsigned int m){
    while(m--){
        short_delay(0x7ff);
    }
}

int main(void)
{
    clk_init();
    led_init();

    while(1){
        led_on();
        delay(50);
        led_off();
        delay(50);
    }

    return 0;
}